
// h() _c() 创建元素的虚拟dom
export function createElementVNode(vm,tag,data,...children){
  if (data==null) {
    data = {}
  }
  let key = data.key
  if (key) {
    delete data.key
  }
  return vnode(vm,tag,key,data,children)
}

// _v() 创建文本的虚拟dom
export function createTextVnode(vm,text){

  return vnode(vm,undefined,undefined,undefined,undefined,text)
}

function vnode(vm,tag,key,data,children,text){

  // ast做的是语法层面的转化,描述的是语法本身（描述js css html）
  // 虚拟dom描述的是dom元素，可以增加一些自定义属性（描述dom）
  return {
    vm,
    tag,
    key,
    data,
    children,
    text
  }
}